Method and a system for computer software distribution using networked software dispensing vending machines

ABSTRACT

A method and a system for dispensing software programs from a networked software dispensing kiosk device or ATM. Software developers can place software for sale within the network thereby causing various remote software ATMs to offer the software. The user causes a display of a list of different categories of software titles available through a remotely located software ATM, e.g., located in a retail market place, or other public place. The user makes a selection from the list and may optionally execute the selected software using an on-screen emulation of the user&#39;s device. If the user is satisfied with the execution of the selected software, the user can purchase or rent the selected software using automated vending equipment of the software ATM. Purchased or rented software titles are electronically communicated from the software ATM to the user&#39;s portable computer system. The software ATM can also provide backup and archiving services for a portable computer user.

CROSS REFERENCE TO RELATED APPLICATIONS

This application is a continuation application of application Ser. No.10/087,370, entitled “A Method And A System For Computer SoftwareDistribution Using Networked Software Dispensing Vending Machines,”filed Feb. 28, 2002, to be issued as U.S. Pat. No. 6,959,285, andassigned to the assignee of the present application. The subject matterin the above-identified co-pending and commonly owned application isincorporated herein by reference.

BACKGROUND OF THE INVENTION

1. Field of the Invention

Embodiments of the present invention relate to the field of computersoftware applications and services. More specifically, embodiments ofthe present invention relate to the field of computer softwaredistribution and distribution of computer system services.

2. Related Art

The number of software applications used by a typical user of a computersystem has rapidly increased over the past few decades. The increase insoftware applications among owners of portable computers has alsoincreased to the point where owners of personal digital assistants(PDAs) maintain a library of computer software programs at theirdisposal.

The available distribution channels for software dictate, more than anyother factor, the availability of software for computer users. In otherwords, the software channels available today, not the softwaredevelopers, dictate the availability of software for end users. This isthe result because in most cases, the software developer has no directoutlet to end users, but rather must use some form of softwaredistribution channel. For various economic reasons, as described below,most software distribution channels restrict the number of softwaretitles that are available to end users.

Moreover, software titles for PDAs sell better at lower prices. Theretail prices of many software application programs for desktop computersystems are less than the cost of the desktop computer system, butexceed the price of many PDAs. Therefore, a cost effective price pointfor software applications targeted for PDAs should be in a range that issubstantially less than the cost of the PDA itself. For instance,someone that purchases a PDA in the range of $100.00 to $300.00 may notbe motivated to purchase a software application for $150.00 (or more),but may acquire several applications in the low cost range of$5.00-$25.00. Unfortunately, software distribution channels do notreadily exist today for distributing large amounts of software titleswithin this low cost range. In other words, the ratio of the price ofthe software compared to the price of the PDA is often a determiningfactor in deciding whether to purchase a software title.

Software titles are primarily distributed today using three softwarechannels: Internet retail, in-store retail and bundled with hardware.Neither of these distribution channels offers a reasonable avenue fordistributing large amounts of software titles in the low cost range.

Regarding the in-store retail distribution channel, retail outletsprovide software applications to customers who can directly visit astore and purchase the software product in a physical medium. However,this distribution channel introduces a number of substantial overheadcosts which need to be passed on to the consumer thereby raising theminimum price of the software. For instance, distribution of softwarethrough retail stores entails expenses related to packaging theproducts, transporting the products, storing the products, reservingshelf space for the products and paying wholesaler and retailer profits.These costs, and middlemen profits, often translate into a few hundredpercent mark-up for software titles while also requiring a high minimumproduct price. Also, because limited shelf space must be reserved forsoftware titles, this reduces the number of software titles that any onestore can provide. Developers of low cost software cannot easily competefor shelf space in retail stores, and if they could, the prices chargedby retail outlets would be too large to move the products and finallythe bulk of any profits would go to the retail stores, not the softwaredevelopers.

Yet, another retail channel of distributing software is via theInternet, e.g., by down loading computer software through web vendorsthat maintain software websites. Retail Internet software distributiondoes not work well for low cost software titles in part because the highcosts of this distribution medium require that web vendors charge a verylarge percentage commission on each sale. Like in-store retailers, thiscauses the profit margins to decrease for low cost software developersand also causes the minimum price of the software to be inflated.Moreover, to use this distribution channel, a user has to haveknowledgeable access to the Internet (and complex downloading andelectronic unpacking techniques) which can restrict the customer base.Many existing web vendors are, in general, not always user friendly andconsumers have difficulties in following installation and administrativeinstructions required in obtaining the software titles.

The third channel of software distribution involves bundling softwarewith the hardware device itself. While useful for a very small number ofapplications, this software channel does not provide a wide avenue formass software distribution, including the distribution of low costsoftware. The costs associated with bundling software with hardwaredevices make computer manufacturers very selective in the software theybundle. As a result, only a very small number of software titles arebundled with computer systems, be they desktop systems or PDAs. As adistribution channel, this one only provides a very small outlet forsoftware distribution. Moreover, this distribution channel does notreadily provide the software user with a mechanism for obtainingpost-sale software upgrades, software fixes, etc.

SUMMARY OF THE INVENTION

Therefore, a need exists to provide a distribution channel fordistributing low cost computer software to end users while providing aneconomic incentive for low cost software developers. Moreover, a needexists for distributing low cost computer software for PDA users.

Accordingly, embodiments of the present invention provide a computersoftware distribution mechanism that can be used by software developersfor distributing low cost computer software. An embodiment of thepresent) invention provides a user-friendly environment for purchasingor renting computer programs. In one implementation, a computer networkis established that includes computer system servers and retail outletsthat take the form of automated software dispensing devices, or kiosks,that each resembles an automatic teller machine (“ATM”), hereinafterreferred to as a “software ATM” or “software kiosk.” Software developerscan register their software with the network thereby making itcommercially available to each networked software ATM in the vendor'ssubscriber list.

Due to their locations, the software ATMs are directly available to endusers of portable computer systems. Therefore, embodiments of thepresent invention provide an economically efficient softwaredistribution channel for directly connecting end users with low costsoftware developers. For instance, the software ATM can be placed in anypublic location that facilitates the distribution of software andcomputer services to end users, e.g., in a coffee shop, a mall, a retailstore, an airport waiting area, a theatre, near phone booths, inspotting areas, etc. Each remotely located software ATM is connected toa network of computer servers (e.g., via the Internet, or a dedicatednetwork connection) and contains a computer system including a computerscreen and a keyboard. Various other equipment for communicating with aPDA are also be provided in each software ATM, such as wireless or slotbased communication equipment.

Retail outlets may be motivated to place software ATMs on or near theirfacilities for a variety of reasons, e.g., to increase foot traffic inthe store, or, in return for small rental fees paid to them in exchangefor the space occupied by the software ATM. Additionally, retail outletsmay, for example, receive a percentage of the the sale or serviceperformed by software ATMs an their property. Furthermore, when thesoftware ATM is not being used to download software or services, it canbe used as advertising space for the retail outlet.

Using the software ATM, a user can cause the display of variousavailable programs, and associated prices (and descriptions andratings), to appear on the computer screen of the software ATM.Optionally, the list can be cataloged by software type (or by anycategory) and can contain descriptive material regarding each softwaretitle, e.g., what it is, how it works, its hardware requirements, andcritical software reviews, etc. Selected software titles can be directlyinstalled from the software ATM to the user's portable computer systemafter paying the required software purchase or rental price. Since thesoftware titles are low priced, payment can be made by cash insertion,or, by a user's credit or debit card. Payment facilities of the softwareATM are automated, much in the same way as food, toy or stamp vendingmachines.

Advantageously, in accordance with one embodiment of the presentinvention, the user can optionally emulate the functionality of his/herdevice on the ATM's display screen. A selected application softwaretitle can then be emulated on the display screen of the software ATM fortesting purposes before the user purchases or rents the computersoftware. In this way, a user can “try out” the software title beforepurchasing and installing it on his/her device. In accordance with thepresent invention, if the user is satisfied with the execution of theselected software on the emulation screen, the user can purchase or rentthe selected software using the software ATM.

Still another embodiment of the present invention provides a user withthe ability to use the software ATM to receive the latest softwareupgrade of his/her installed computer software.

Another embodiment of the present invention provides computer servicesto the user. For instance, the software ATM can be used as a back upmechanism for information stored on the user's portable computer system.For a fee, the user can back up data and programs from his/her portablecomputer system onto storage servers via the software ATM. Thisinformation is then transmitted to one or more of the networked serversystems. In this way, a user can restore the data/programs from anyremote software ATM that is networked to the server system containingthe backed-up data and programs. Should the user's PDA become lost,broken or stolen, a replacement unit can be updated with the user'sback-up data and programs from virtually any location providing asoftware ATM.

In another embodiment of the present invention, the network of softwareATMs can be used to warehouse or archive inactive software programs of aportable computer user.

In another embodiment of the present invention, the network of softwareATMs can be used as an Internet access point for PDAs which lackwireless Internet capabilities.

More specifically, an embodiment of the present invention is directed toa network system for distributing software programs comprising: anetworked server for receiving and storing software programs fromsoftware developers; a remotely located software dispensing kiosknetworked with the server and for receiving and storing softwareprograms from the networked server; in response to a user request, thesoftware dispensing kiosk for displaying a directory of the softwareprograms; in response to a software selection by a user, the softwaredispensing kiosk also for accepting payment from the user for a selectedsoftware program; and in response to the payment, the softwaredispensing kiosk for communicating an instantiation of the selectedsoftware program to a portable computer system of the user.

Embodiments further include the above and wherein, in response to thesoftware selection, the software dispensing kiosk also for emulating aportable computer system executing the selected software program.Embodiments are also directed to a method of distributing softwareimplemented in accordance with the above.

BRIEF DESCRIPTION OF THE DRAWINGS

FIG. 1 is a block diagram of an exemplary portable computer system.

FIG. 2 illustrates a software ATM (“software ATM”) capable of dispensinga computer program to an exemplary portable electronic device.

FIG. 3 illustrates a network of remotely located software ATMs networkedwith sewer systems with each ATM capable of dispensing computer programsto a plurality of portable electronic devices.

FIG. 4 illustrates a screen-displayed directory of computer programsavailable by a software ATM to a user of a portable computer system.

FIG. 5 illustrates a list of inactive computer programs stored in anarchive to save memory space in the electronic device.

FIG. 6 is a flowchart of steps of a process for dispensing a computerprogram to a portable electronic device in accordance with oneembodiment of the present claimed invention.

FIG. 7 is a flowchart of steps of a process for activating an inactivecomputer program from a list of inactive computer programs in accordancewith one embodiment of the present claimed invention.

FIG. 8 is a flowchart of the steps of a process for providing a back-upservice to a portable electronic device in accordance with oneembodiment of the present claimed invention.

FIG. 9 is an illustration of different directories listing ratedcomputer programs.

DETAILED DESCRIPTION OF THE INVENTION

Reference will now be made in detail to the preferred embodiments of thepresent invention, a method and a system for a novel channel of softwaredistribution including the use of remotely located and networked vendingmachines which are software dispensing kiosks (“software ATMs”),examples of which are illustrated in the accompanying drawings. Whilethe invention will be described in conjunction with the preferredembodiments, it will be understood that they are not intended to limitthe invention to these embodiments. On the contrary, the invention isintended to cover alternatives, modifications and equivalents, which maybe included within the spirit and scope of the invention as defined bythe appended claims. Furthermore, in the following detailed descriptionof the present invention, numerous specific details are set forth inorder to provide a thorough understanding of the present invention.However, it will be recognized by one of ordinary skill in the art thatthe present invention may be practiced without these specific details.In other instances, well-known methods, procedures, components, andcircuits have not been described in detail as not to unnecessarilyobscure aspects of the present invention.

Notation and Nomenclature

Some portions of the detailed descriptions which follow are presented interms of procedures, steps, logic blocks, processing, and other symbolicrepresentations of operations on data bits that can be performed oncomputer memory. These descriptions and representations are the meansused by those skilled in the data processing arts to most effectivelyconvey the substance of their work to others skilled in the art Aprocedure, computer executed step, logic block, process, etc., is here,and generally, conceived to be a self-consistent sequence of steps orinstructions leading to a desired result. The steps are those requiringphysical manipulations of physical quantities. Usually, though notnecessarily, these quantities take the form of electrical or magneticsignals capable of being stored, transferred, combined, compared, andotherwise manipulated in a computer system It has proven convenient attimes, principally for reasons of common usage, to refer to thesesignals as bits, values, elements, symbols, characters, terms, numbers,or the like.

It should be borne in mind, however, that all of these and similar termsare to be associated with the appropriate physical quantities and aremerely convenient labels applied to these quantities. Unlessspecifically stated otherwise as apparent from the followingdiscussions, it is appreciated that throughout the present invention,discussions utilizing terms such as “accessing” “processing” or“computing” or “translating” or “calculating” or “determining” or“scrolling” or “displaying” or “recognizing” or “transmitting” or“beaming” or the like, refer to the action and processes of a computersystem, or similar electronic computing device, that manipulates andtransforms data represented as physical (electronic) quantities withinthe computer system's registers and memories into other data similarlyrepresented as physical quantities within the computer system memoriesor registers or other such information storage, transmission or displaydevices.

Exemplary Palmtop Computer System Platform

The present invention is compatible with any electronic device having awireless or other communication protocol and organized records ofinformation, such as a cell phone or a pager. One of the common types ofelectronic systems, which can be used in accordance with one embodimentof the present invention, is referred to as a personal digitalassistant, or commonly called a PDA. The PDA is a hand held computersystem with the capability to store telephone numbers, addresses, dailyappointments, and software that maintains business or personal data suchas expenses, etc. Furthermore, the PDA also has the ability to connectto a personal computer, enabling the two devices to exchange updatedinformation that is synchronizing the information between the twodevices. Additionally, the PDA can also be connected to a modem,enabling it to have electronic mail (e-mail) capabilities over theInternet along with other Internet capabilities. Moreover, an advancedPDA can have Internet capabilities over a wireless communicationinterface (e.g., radio interface).

FIG. 1 is a block diagram of exemplary circuitry of a portable computingsystem 330 in accordance with one embodiment of the present invention.The computer system 330 includes an address/data bus 99 forcommunicating information, a central processor 101 coupled with the bus99 for processing information and instructions. It is appreciated thatcentral processor unit 101 may be a microprocessor or any other type ofprocessor. The computer system 330 further includes a non-volatilememory ′103 (e.g., read only memory, programmable ROM, flash memory,EPROM, EEPROM, etc.) coupled with the bus 99 for storing staticinformation and instructions for the processor 101. Computer system 330may also include an optional data storage device 104 (e.g., thin profileremovable memory) coupled with the bus 99 for storing information andinstructions. It should be understood that device 104 may be removable.Furthermore, device 104 may also be a secure digital (SD) card reader orequivalent removable memory reader.

Also included in computer system 330 of FIG. 1 is an alphanumeric inputdevice 106 which in one implementation is a handwriting recognition pad(“digitizer”) and may include integrated push buttons in one embodiment.Device 106 can communicate information (spatial data and pressure data)and command selections to the central processor 101.

System 330 of FIG. 1 also includes an optional cursor control ordirecting device 107 coupled to the bus 99 for communicating user inputinformation and command selections to the central processor 101. In oneimplementation, device 107 is a touch screen device (also a digitizer)incorporated with display screen 105. Device ′107 is capable ofregistering a position on the screen 105 where the stylus 80 makescontact and the pressure of the contact.

Computer system 330 also contains a flat panel display device 105coupled to the bus 99 for displaying information to the computer user.The display device 105 utilized with the computer system 330 may be aliquid crystal device (LCD), cathode ray tube (CRT), field emissiondevice (FED, also called flat panel CRT), plasma or other displaytechnology suitable for creating graphic images and/or alphanumericcharacters recognizable to the user. In one embodiment, the display 105is a flat panel multi-mode display capable of both monochrome and colordisplay modes.

Also included in computer system 330 of FIG. 1 is a signal communicationdevice 108 coupled to bus 99 that may be a serial port (or USB port) forenabling system 330 to communicate with a remote device (not shown). Asmentioned above, in one embodiment, the communication interface 108 is aserial communication port, but could also alternatively be of any of anumber of well known Communication standards and protocols, e.g.,parallel, SCSI, Ethernet, FireWire (IEEE 1394), USB, etc. In addition todevice 108, wireless communication links can be established between thedevice 330 and another computer system using a Bluetooth wireless device1′12, an infrared (IR) device 64, or a Global System for Messaging (GSM)radio device 114. Device 114 may also be a wireless modem device 114,e.g., a GSM wireless radio with supporting chip set.

In one implementation, the Mobitex wireless communication system may beused to provide two way communication between computer system 330 andother networked computers and/or the Internet (e.g., via a proxyserver). In other embodiments, transmission control protocol (TCP) canbe used or Short Message Service (SMS) can be used. System 330 of FIG. 1may also contain batteries (not shown) for providing electrical power.

Software Distribution Channel in Accordance with an Embodiment of thePresent Invention

FIG. 2 depicts a system 200 including a computer software and servicedispensing device 320, which is an automated vending machine capable ofdispensing computer software to a portable electronic device 330. In oneembodiment, the computer software/service dispensing device 320resembles an automated teller machine (ATM) in appearance and isreferred to herein as a “software ATM,” a “software kiosk,” or a“software dispensing device.” However, software dispensing device 320may be configured in a variety of physical configurations. The portablecomputer system 330 may be a hand held computer system, e.g., a personaldigital assistant (PDA). In one embodiment, software/service dispensingdevice 320 is a freestanding device. In another embodiment, softwaredispensing device 320 is coupled (e.g., via the Internet, or a dedicatednetwork connection) with network server computers and other softwaredispensing devices. Software/service dispensing device 320 includes ageneral purpose computer system, e.g., a personal computer system, thatincludes a processor, a display screen, user input devices, and acommunication unit for communicating with portable computer system 330.This communication unit can support both contact-based or wirelesscommunication. The software ATM 320 also comprises an operating system.The operating system optionally supports emulation of hand held computersystems, e.g., a Palm OS® Emulator.

The software ATM 320 may be placed in any location that facilitates theselling of software titles offered therein to end users. In oneimplementation, the software ATM 320 may be placed in a retail marketplaces, coffee shops, airports, near public telephones, etc. Thesoftware ATM 320 may be placed at virtually any location where a vendingmachine would be envisioned.

The software ATM 320 is fully automated in that no human operator isrequired to conduct a transaction of software titles or softwareservices with an end user. End users may purchase or rent softwaretitles or software services from the software ATM 320 using, forexample, a cash transaction or using a credit or debit card. Othermethods for consumating the transaction may include E-wallets, giftcertificates, or a credit system which awards credits to an end user foreach transaction performed using a software ATM. When enough creditshave accumulated, the end user is entitled, for example, a free softwaretitle download.

Cash transactions may be performed using payment equipment of thesoftware ATM 320 that are analogous to a standard vending machine, e.g.,for the purchase of toys, food items or stamps Credit card informationmay be entered via a keyboard of the software ATM 320, wirelessly by thePDA 330, or via an electronic credit card reader 292 mounted within thesoftware ATM 320.

In operation, a user of portable electronic device 330 can commence atransaction with software ATM 320 either by pointing electronic device330 at software ATM 320 and requesting a connection wirelessly (e.g.,Bluetooth, InfraRed, etc.), or by inserting electronic device 330 onto acradle 380. During a session, an emulated version 390 of electronicdevice 330 may appear on touch screen display monitor 340 or uponelectronic device 330 if emulation is requested. The user can interactwith emulated version 390 of electronic device 330 through electronicdevice 330, touch screen 340, or by manually manipulating joystick 360(or other cursor directing device).

Importantly, the user can cause display of a directory of computersoftware programs, music, or other multimedia software stored insoftware ATM 230 (e.g., Basketball directory 4′10 of FIG. 4, Gamesdirectory 420 of FIG. 4, or stock directory 410 of FIG. 4). The displayof the directories can be accomplished either wirelessly with the aid ofelectronic device 330 or manually by manipulating joy stick 360. In oneembodiment, the directory is automatically displayed upon communicationwith the PDA 330. The directory can include: the name of the softwaretitle; a short description of the title; its price; a category; and aratings (see FIG. 9).

The user can select an application program (e.g., Lakers v Jazz fromBasketball directory 410 of FIG. 4, or Solitaire game from Gamesdirectory 420 of FIG. 4) either wirelessly or manually, as statedbefore, and install the selected application program in emulated version390 of electronic device 330. The user can test run the selectedapplication program on emulated version 390 of electronic device 330.Once the user is satisfied with the operation of the selectedapplication program and decides to purchase or to rent the selectedapplication program, the user may exit the test mode by pressing button361 or wirelessly via electronic device 330. The user can commencetransaction procedures to purchase the application program by pressingbutton 262, by interacting with buttons generated on touch screendisplay monitor 340, or wirelessly via electronic device 330. Oncepurchased, the selected application program can be communicated to thePDA 330, either via contacts from cradle 380, via a wirelesscommunication, or by downloading the software onto a removable datastorage device (e.g., data storage device 104 of FIG. 1) inserted intoslot 390 of the software ATM. The removable software media may then beinserted into PDA 330 and used to download the software therein.

It is appreciated that the user may conduct payment by insertingcash/coins into the vending slots 290, by sliding a credit card or debitcard into card reader 292, via credit card information stored on PDA330, or by other credit methods such as E-wallet, gift certificates, orcredits.

FIG. 3 is an illustration of a software distribution network 300 inaccordance with an embodiment of the present invention that makes use ofthe software ATMs 320(i). The network includes a plurality of networkedsoftware ATMs 320(i) that are coupled (e.g., via the Internet 310, or bya dedicated network connection) to networked server computers 305. Thesoftware ATMs 320(i) are capable of dispensing computer programs to aplurality of portable electronic devices 330(j). Software ATMs 320(i),as discussed above, may be installed in a variety of public/retailplaces (e.g., restaurants, coffee shops, bookstores, airports,retailers, malls, etc.) and accessible to public at large.

Networked server computers 305 regulate the software content of thesoftware ATMs 320(i) by downloading various software titles to thesoftware ATMs. The networked server computers are responsible formaintaining current versions of software titles that are offered andalso for performing other related services, such as providing back-upand archive services (described further below). In one implementation,only the most popular software titles are stored and maintained withinthe software ATMs. Therefore, a desired software title that is notstored in a particular software ATM can be downloaded to the ATM from aserver 305, and then provided to the user.

An owner of electronic device 330(j), who wishes to purchase or rent acomputer software program, can use any one of software ATMs 320(i) onthe network to access an application program stored in any software ATM320(m) or application program stored in one of the centralarchives/servers 305.

A user of electronic device 330(j) can conduct a sales transaction or arental transaction with any remotely located software ATM 320(i) withinthe network 300 depending on the location of the two devices. Forinstance, the user of electronic device 3306) can commence thetransaction with software ATM 320(m) by inserting electronic device330(j) onto cradle 380(m) or by transmitting a “request for connection”signal wirelessly (e.g., Bluetooth, IR, etc) to software ATMs 320(m). Inone embodiment, the “request for connection” signal includes theidentification number of electronic device 330(j).

Software ATM 320(m) may be a “PC” based device in one embodiment and mayinclude emulator software, e.g., Palm 0s @ Emulator. An emulatedrendition or animation image 390(m) of electronic device 3306) appearson touch screen display monitor 340(m) if emulation is desired. The usercan interact with emulated version 390(m) of electronic device 3306) viaelectronic device 330(j) either through touch screen 340(m), or joystick360(m).

Importantly, the user can cause display of a directory of computersoftware programs (e.g., Basketball directory 410 of FIG. 4, Gamesdirectory 420 of FIG. 4, or stock directory 410 of FIG. 4) stored insoftware ATM 320(m) or stored on archive 395. This directory can bedisplayed wirelessly through electronic device 330(j) or manually viajoy stick 360(m). The directory may be organized by a number ofdifferent categories, including the type of software, as shown in FIG.4. These software titles of the directory are offered for sale by thesoftware ATM.

The user can select one of the displayed application programs from thedisplayed directory, e.g., Lakers v Jazz from Basketball directory 410of FIG. 4, Solitaire from games directory 420, etc. The selection may bedone wirelessly by using electronic device 330(j) or manually usingjoy-stick 360(m). The selected program can be installed on emulatedversion 390(m) of electronic device 3300). Using the optional emulator,the user can conduct a test run of the selected application program onemulated version 390(m) of electronic device 3300) either wirelessly ormanually with the aid of joystick 360(m). Once the user is satisfiedwith the operation of the selected application program and decides topurchase or rent the selected application program, the user may exit thetest mode by pressing on button 361(m) or wirelessly via electronicdevice 3300). The user can download and install the application programon electronic device 330(j) by pressing on button 362(i) or wirelesslyusing electronic device 330(j) which initiates a purchase transactionwhich includes the download functionality.

FIG. 4 is an illustration of exemplary software directories that can bedisplayed on software ATMs 320(m). A plurality of directories can bedisplayed in accordance to a user's request. A user can select differentdirectories according different on screen menus. Any of the listedtitles can be selected by touching the screen of the ATM, using thejoystick to navigate an on-screen cursor, or using any number of otherwell known user interface techniques for selecting screen displayeditems. The software directories may reside on software ATM 320(m) at thelocation (e.g., locally) or on another remote software ATM 320(i) or inthe alternative in a remote archive 390 of FIG. 3. The network 300allows communication between all of these devices.

For example, a user may wish to purchase a chess game software, rent avideo game of a basketball game played between Los Angeles Lakers andUtah Jazz and would like to get a report on the XYZ stocks. The usercauses Basketball directory 410 to be displayed on emulated version 390of electronic device 330 of FIG. 2. The user can conduct a test run ofthe software program, and if satisfied can down load the program onelectronic device 330 of FIG. 2.

The user can display software directory 420 of all games available inthe to software ATMs 320(i), regardless of where software ATMs 320(i) isphysically located. The user can load chess game software on emulatedversion 390(i) of electronic device 330(j) and perform test runs on thesoftware. The user can rent the software by downloading the software inelectronic device 330(j) of FIG. 3.

The user may wish to get a report of the status of XYZ stock. The usercan establish communication (e.g., cradle, Bluetooth, IR, etc.) withsoftware ATMs 320(i) and get the report displayed either on his deviceor on the software ATMs 320(i).

In another embodiment of the present invention, a user of electronicdevice 330(1) of FIG. 3 can upgrade an already owned computer program. Auser of electronic device 330(1) establishes a session with software ATM320(1) either wirelessly, as explained in FIG. 3, or by insertingelectronic device 330(1) onto cradle 380(1). The user then requestssoftware upgrade services, which causes the software titles loaded onthe device 330(1) to be recognized by the software ATM. In anotherembodiment, software ATM determines the software versions running on PDA330 and asks the user if they want to upgrade their software to a newerversion. The software ATM then displays on screen 340(1) a directory ofsoftware including the latest versions, if any, of the computer programsthat exist on device 330(1). The user can test run the latest version ofthe software on emulated version 390(1) of electronic device 330(1) bydownloading the latest version of the software in the emulated version390(I) of electronic device 330(1). If the user is satisfied of theresult of the test and decides to replace the old version with the newversion, then the user presses button 362(1) to commence a transactionand to download the new version in electronic device 330(1), replacingthe old version.

FIG. 5 illustrates a list 610 of inactive computer software programsowned by a user of electronic device 330 of FIG. 2. The user may decideto archive an already owned and less frequently used computer program inan archive provided in accordance to one embodiment of the presentinvention. The inactive computer software program may be stored in thearchive server 305 for future activation. In this embodiment of thepresent invention, the software ATM may be used to store/accesspreviously purchased but archived software titles of the user. Thesearchived software titles are called “inactive” software titles herein.The user may access any of pre-owned and inactive computer programstored in archive 390 and may download an inactive software title orreplace the inactive computer software with a new version of thecomputer software. The user can activate the inactive program bydisplaying the list of inactive program 610 and marking the program foractivation which causes it to be downloaded from the software ATM intothe device.

FIG. 6 is a flowchart of the steps of a process 700 for purchasing orrenting a computer software program from a software ATM, in accordancewith one embodiment of the present invention. In step 710, the userestablishes a session with the software ATM. In one embodiment, the userstarts the session by inserting an electronic device onto a cradle ofthe software ATM or wirelessly by transmitting “request for connection”signal from the portable electronic device to the software ATM. Inanother embodiment, the software ATM can detect the presence of theuser's electronic device (e.g., via Bluetooth discovery) and initiates awireless session with the software ATM. Also at step 710, the useridentifies the electronic device to the software ATM. The identificationis either by inserting the device onto the cradle or an identificationnumber is included in the “request for connection” signal.

In step 720, the user requests display of directories pertaining tohis/her interest on the display screen of the software ATM. Thedirectories may be displayed using a menu based system or any userinterface that facilitates directory/listing selection. By manipulatingthe menus, a desired and category-based directory can be displayed. Forinstance, a user, who is in the market for purchasing computer games,causes a game directory to he displayed on the display screen ofsoftware ATM.

In step 730, the user can navigate through the displayed directory insearch of a particular computer game of his/her interest which can beselected.

At step 740, the user may optionally have the selected software titleemulated on an image of the handheld device that is displayed on thesoftware ATM's display screen.

In step 750, the user can purchase the selected software title ifsatisfied with the emulation and/or selection. The purchase or rentalcan be accomplished via credit card or via a cash transaction. In eithercase, automated transaction equipment of the software ATM can be used.At step 760, the user can download the selected program into theportable computer system after the purchase/rental transaction iscomplete. Also at step 760, the user can terminate the session and causethe emulated version of the electronic device to disappear by removingthe electronic device from the cradle or by sending a signal to softwareATM to termination the session.

FIG. 7 is a flowchart of steps of a process 800 for using the softwareATM to activate, e.g., download, an inactive computer program from alist of inactive computer programs in accordance with one embodiment ofthe present invention. In this embodiment, the software ATM, andassociated network, provides a software archiving service for the user.

In step 810, a user establishes a session with a software ATM. The usermay commence the session by inserting an electronic device onto a cradleof the software ATM or wirelessly by transmitting a “requests forconnection” signal to the software ATM.

In step 820, the user identifies the electronic device to the softwareATM. The identification can be accomplished via a code that istransmitted to the software ATM. The identification may include one ormore authentication codes.

In step 830, the user causes the software ATM to display a list ofinactive computer programs that are associated with the user'sidentification code. The inactive programs can be stored in an archiveserver 305 (FIG. 3). In step 840, the user selects a desired inactiveprogram to be activated from the list of inactive programs.

In step 850, the user activates the inactive program by marking theprogram “activated. Optionally, this step may require the payment of afee at the software ATM. This causes the selected program to bedownloaded onto the user's portable computer system. In step 860, theuser can terminate the session by removing the electronic device fromthe cradle or by sending a signal to software ATM to termination thesession.

FIG. 8 is a flowchart of the steps of a process 900 for restoringpreviously backed up information from a user's electronic device. Theback up data can be restored on a new or replacement device of the user.The previously performed back up procedure can be done using a softwareATM. Once backed up, the user's data and/or programs are recorded ontoone or more archived servers 305 within the network.

the user's unavailable electronic device into another device. In thisembodiment, the software ATM, and associated network, provides asoftware archiving service for the user.

In step 920, the user establishes a session with the software ATM. Theuser may start the session by inserting an electronic device onto acradle or wirelessly by transmitting a “requests for connection” signalto the software ATM.

In step 930, the user identifies an unavailable electronic device (e.g.,lost or stolen) to the software ATM. The identification is either byinserting the user's identification number into the software ATM or byswapping a user's special identification card through a slat availablein the software ATM.

In step 940, the user commands the software ATM to restore allapplications and information existing in the old device into the newdevice. In step 950, the user terminates the session with the softwareATM. In step 960, the user logs-off to erase the user identificationnumber.

FIG. 9 is an illustration of another embodiment of the presentinvention, where a set 1000 of directories of computer software includessoftware ratings for each title. Such directory can be available in thenetwork of software ATMs or in a stand-alone software ATM. The starsassociated with each entry are an indication of favorable rating by auser of that particular application. The ratings can come from usertestimonials, or from critical reviews.

In summary, embodiments of the present invention provide a system andmethod for a novel channel of software distribution including the use ofremotely located and networked vending machines which are softwaredispensing kiosks (“software ATMs”). According to an embodiment of thepresent invention a stand alone software dispensing device installed ata public location may be used to commercially dispense computer softwareto the public. Advantageously, this method of software distributionoptionally allows a user of portable computer to emulate a version ofhis portable computer on the touch screen display of the software ATMand to test run a desired computer software on the emulated version ofhis computer. The user can purchase the computer program if satisfiedwith the test result. Another embodiment of this invention allows aplurality of software ATMs to be coupled to the Internet and accessibleto the public. Another embodiment of the present invention enables anowner of a portable computer who has lost his portable computer torestore all information in the lost portable computer in a new portablecomputer.

The foregoing description of specific embodiment of the presentinvention has been presented for purpose of illustration anddescription. They are not intended to be exhaustive or to limit theinvention to the precise form disclosed, and obviously manymodifications and variations are possible in light of the aboveteaching. The embodiments were chosen and described in order to bestexplain the principles of the invention and its practical application,to thereby enable others skilled in the art to best utilize theinvention and various embodiments with various modifications as aresuited to the particular use contemplated. It is intended that the scopeof the invention be defined by the Claims appended hereto and theirequivalents.

1. A method for distributing software programs comprising the steps of:transmitting a plurality of software programs from a networked servercomputer to at least one remote software dispensing device; storing saidplurality of software programs on said software dispensing device;establishing a connection between the software dispensing device and aportable computer system of a user; identifying the portable computersystem to the software dispensing device, such identification includingtransmitting an identification code to the software dispensing devicefrom the portable computer system; in response to a request from theuser, displaying a directory of said plurality of software programs onsaid software dispensing device; in response to software selection, saidsoftware dispensing device offering emulation to said user of saidsoftware program; in response to a software selection by the user,accepting payment from said user for a selected software program; and inresponse to said payment, communicating an instantiation of saidselected software program from said software dispensing device to theportable computer system of said user.
 2. The method of claim 1, whereinthe connection is established wirelessly by the user transmitting arequest for connection signal to the software dispensing device from theportable computer system.
 3. The method of claim 1, wherein theconnection is established wirelessly by the software dispensing devicediscovering the presence of the portable computer system.
 4. The methodof claim 1, wherein the connection is established by the user placingthe portable computer system onto a cradle attached to the softwaredispensing device.
 5. The method of claim 1, wherein the portablecomputer system is identified to the software dispensing device by theuser placing the portable computer system onto a cradle attached to thesoftware dispensing device.
 6. The method of claim 1, wherein theportable computer system is identified to the software dispensing deviceby means of an identification code wirelessly transmitted to thesoftware dispensing device from the portable computer system.
 7. Themethod of claim 1, wherein the directory comprises a name, description,price, category and rating for each of said plurality of softwareprograms.
 8. The method of claim 1, wherein the directory resides on adevice remote from the software dispensing device.
 9. The method ofclaim 1, wherein the software dispensing device recognizes a softwareprogram previously loaded onto the portable computer system and asks theuser if he or she wishes to upgrade the previously-loaded softwareprogram to a newer version.
 10. A network system for distributingsoftware programs comprising: a networked server for receiving andstoring software programs from software developers; at least oneremotely located software dispensing kiosk networked with said serverand configured for receiving and storing software programs from saidnetworked server, for establishing a connection with a portable computersystem of a user, and for identifying the portable computer system,wherein the identification includes transmitting an identification codeto the software dispensing kiosk; in response to a request from theuser, said software dispensing kiosk displaying a directory of saidsoftware programs; in response to software selection, said softwaredispensing kiosk offering emulation of said software program; inresponse to a software selection by a user, said software dispensingkiosk accepting payment from said user for a selected software program;and in response to said payment, said software dispensing kioskcommunicating an instantiation of said selected software program to aportable computer system of said user.
 11. The network system of claim10, wherein said software dispensing kiosk comprises: a processorcoupled to a bus; a memory coupled to said bus; a display screen coupledto said bus; and a communication unit coupled to said bus and forcommunicating with said portable computer system of said user.
 12. Thenetwork system of claim 10, wherein the connection is establishedwirelessly by the user transmitting a request for connection signal tothe software dispensing kiosk from the portable computer system.
 13. Thenetwork system of claim 10, wherein the connection is establishedwirelessly by the software dispensing kiosk discovering the presence ofthe portable computer system.
 14. The network system of claim 10,wherein the connection is established by the user placing the portablecomputer system onto a cradle attached to the software dispensing kiosk.15. The network system of claim 10, wherein the portable computer systemis identified to the software dispensing kiosk by the user placing theportable computer system onto a cradle attached to the softwaredispensing kiosk.
 16. The network system of claim 10, wherein theportable computer system is identified to the software dispensing kioskby means of an identification code wirelessly transmitted to thesoftware dispensing kiosk from the portable computer system.
 17. Thenetwork system of claim 10, wherein the directory comprises a name,description, price, category and rating for each of said plurality ofsoftware programs.
 18. The network system of claim 10, wherein thedirectory resides on a device remote from the software dispensing kiosk.19. The network system of claim 10, wherein the software dispensingkiosk recognizes a software program previously loaded onto the portablecomputer system and asks the user if he or she wishes to upgrade thepreviously-loaded software program to a newer version.